/**
 * 
 */
package fr.gfi.agraf.service.mapper;

import java.util.ArrayList;
import java.util.List;

import org.springframework.util.CollectionUtils;

import fr.gfi.agraf.persistence.entity.Etat;
import fr.gfi.agraf.service.enumeration.EtatEnum;
import fr.gfi.agraf.vue.bean.EtatDTO;

/**
 * @author eleve
 * 
 */
public class EtatMapper {

	/**
	 * Constructeur
	 */
	private EtatMapper(){
		// Empty constructeur
	}
	/**
	 * Convertit un etat en dto
	 * 
	 * @param etat
	 * @return
	 */
	public static EtatDTO entityToDto(final Etat etat) {
		final EtatDTO etatDTO = new EtatDTO();
		etatDTO.setId(etat.getId());
		etatDTO.setLibelle(etat.getLibelle());
		etatDTO.setLibelleCss(EtatEnum.getEtatEnumById(etat.getId()).getLibelleCss());
		return etatDTO;
	}

	/**
	 * @param etatDTO
	 * @return
	 */
	public static Etat dtoToEntity(final EtatDTO etatDTO) {
		final Etat etat = new Etat();
		etat.setId(etatDTO.getId());
		etat.setLibelle(etatDTO.getLibelle());
		return etat;
	}

	/**
	 * Convertit un etat en dto List
	 * 
	 * @param etatList
	 * @return
	 */
	public static List<EtatDTO> entityToDTOList(final List<Etat> etatList) {
		final List<EtatDTO> etatDTOList = new ArrayList<EtatDTO>();
		if (!CollectionUtils.isEmpty(etatList)) {
			for (final Etat etat : etatList) {
				etatDTOList.add(entityToDto(etat));
			}
		}
		return etatDTOList;
	}
}
